var baseURL="http://localhost:8700";

/**
 * 通用的post请求
 * @param url 请求地址
 * @param data 请求参数
 * @param success 成功返回
 * @param fail 错误返回
 */
function postAjax(url,data,success,fail){
    postAjaxBase(url,data,true,true,true,success,fail);
}
function postAjaxNoSuccessTip(url,data,success,fail){
    postAjaxBase(url,data,true,false,true,success,fail);
}
function postAjaxNoSuccessTipNoLoading(url,data,success,fail){
    postAjaxBase(url,data,true,false,false,success,fail);
}

function postAjaxNoFailTip(url,data,success,fail){
    uploadFileBase(url,data,success,null); // 上传文件请求，不显示错误提示  
}

/**
 * 同步请求
 * @param {} url 
 * @param {*} data 
 * @param {*} success 
 * @param {*} fail 
 */
function postAjaxNoSuccessTipAsync(url,data,success,fail){
    postAjaxBase(url,data,false,false,true,success,fail);
}

/**
 * 通用的post请求
 * @param url 请求地址
 * @param data 请求参数
 * @param isOkTip 请求正常是否弹窗
 * @param success 成功返回
 * @param fail 错误返回
 */
function postAjaxBase(url,data,async,isOkTip,isShowLoading,success,fail){
    $.post({
        url:baseURL+url,
        dataType: 'json',
        contentType: 'application/json',
        data: JSON.stringify(data),
        async:async,
        beforeSend: function(request) {            
            request.setRequestHeader("token", localStorage.getItem("token"));
            if(isShowLoading) layer.load(); //打开layui加载效果
        },
        success:function (response){
            layer.closeAll(); //关闭所有弹层
            if(response.code===0){
                if(isOkTip){
                    notice.success(response.msg);
                }
                success && success(response);
            }
            else if(response.code===401){
                popup.failure("登录失效，请重新登录", function() {
                  parent.location.href = "/index.html"
                });
            }
            else{
                notice.error(response.msg);
                fail && fail(response);
            }
        },
        error: function (error) { // 请求失败处理
            layer.closeAll(); //关闭所有弹层
            console.log(error);
            notice.error("网络异常，请稍候重试！");
            fail && fail(error);
        }
    });
}

function uploadFileBase(url, fileData, success, fail) {
    var formData = new FormData(); // 创建FormData对象
    formData.append('file', fileData); // 假设fileData是文件对象，添加到FormData中

    $.ajax({
        url: baseURL + url, // 请求的URL地址
        type: 'POST', // 请求方式
        data: formData, // FormData数据
        processData: false, // 告诉jQuery不要处理发送的数据
        contentType: false, // 告诉jQuery不要设置内容类型
        beforeSend: function(request) {
            request.setRequestHeader("token", localStorage.getItem("token"));
            layer.load(); // 打开layui加载效果
        },
        success: function(response) {
            layer.closeAll(); // 关闭所有弹层
            if(response.code === 0) {
                notice.success(response.msg);
                success && success(response);
            } else {
                notice.error(response.msg);
                fail && fail(response);
            }
        },
        error: function(error) {
            layer.closeAll(); // 关闭所有弹层
            console.log(error);
            notice.error("网络异常，请稍候重试！");
            fail && fail(error);
        },
        complete: function() {
            // 可选：请求完成后的回调，无论成功或失败都会执行
        }
    });
}


/**
 * 获取url参数
 * @param name
 * @returns {boolean|*}
 */
function getUrlParams(name) { // 不传name返回所有值，否则返回对应值
    var url = window.location.search;
    if (url.indexOf('?') == 1) { return false; }
    url = url.substr(1);
    url = url.split('&');
    var name = name || '';
    var nameres;
    // 获取全部参数及其值
    for(var i=0;i<url.length;i++) {
        var info = url[i].split('=');
        var obj = {};
        obj[info[0]] = decodeURI(info[1]);
        url[i] = obj;
    }
    // 如果传入一个参数名称，就匹配其值
    if (name) {
        for(var i=0;i<url.length;i++) {
            for (const key in url[i]) {
                if (key == name) {
                    nameres = url[i][key];
                }
            }
        }
    } else {
        nameres = url;
    }
    // 返回结果
    return nameres;
}

/**
 * 跳转到评分系统页面
 * @param id
 */
function navitePf(id,name){
    parent.layui.admin.addTab('pf'+name+id,name+"-系统列表","./page/pfsystemlist.html?id="+id)
    parent.layui.admin.refresh('pf'+name+id);
}

/**
 * 跳转到评分系统页面
 * @param id
 */
function navitePfItem(id,data){
    // if(localStorage.getItem("roleType")==1||localStorage.getItem("roleType")==2||localStorage.getItem("roleType")==3){
    //     parent.layui.admin.addTab('system'+systemName+id,systemName,encodeURI("./page/pfsystemdetails.html?id="+id+"&systemName="+systemName+"&pfItemType=2"));
    // }else{
    //     parent.layui.admin.addTab('system'+systemName+id,systemName,encodeURI("./page/pfsystemdetails.html?id="+id+"&systemName="+systemName+"&pfItemType=1"));
    // }
    parent.layui.admin.addTab('system'+data.systemId+id,data.systemName,encodeURI("./page/pfsystemdetails.html?id="+id+"&systemId="+data.systemId));
    parent.layui.admin.refresh('system'+data.systemId+id);
}